]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
8 years agojs: use ES6 template strings for dbus interfaces
Marco Trevisan (Treviño) [Thu, 23 Aug 2018 00:55:02 +0000 (02:55 +0200)]
js: use ES6 template strings for dbus interfaces

Use multiline template strings for dbus interfaces as they're easier to maintain

8 years agojs/ui: Choose some actors to cache on the GPU
Daniel van Vugt [Fri, 6 Apr 2018 10:26:58 +0000 (18:26 +0800)]
js/ui: Choose some actors to cache on the GPU

Flag some actors that are good candidates for caching in texture memory
(what Clutter calls "offscreen redirect"), thereby mostly eliminating
their repaint overhead.

This isn't exactly groundbreaking, it's how you're meant to use
OpenGL in the first place. But the difficulty is in the design of
Clutter which has some peculiarities making universal caching
inefficient at the moment:

 * Repainting an offscreen actor is measurably slower than repainting
   the same actor if it was uncached. But only by less than 100%,
   so if an actor can avoid changing every frame then caching is usually
   more efficient over that timeframe.

 * The cached painting from a container typically includes its children,
   so you can't cache containers whose children are usually animating at
   full frame rate. That results in a performance loss.
     This could be remedied in future by Clutter explicitly separating a
   container's background painting from its child painting and always
   caching the background (as StWidget tries to in some cases already).

So this commit selects just a few areas where caching has been verified
to be beneficial, and many use cases now see their CPU usage halved:

One small window active...... 10% -> 7% (-30%)
...under a panel menu........ 23% -> 9% (-61%)
One maximized window active.. 12% -> 9% (-25%)
...under a panel menu........ 23% -> 11% (-52%)
...under a shell dialog...... 22% -> 12% (-45%)
...in activities overview.... 32% -> 17% (-47%)
(on an i7-7700)

Also a couple of bugs are fixed by this:

https://bugzilla.gnome.org/show_bug.cgi?id=792634
https://bugzilla.gnome.org/show_bug.cgi?id=792633

8 years agoUpdate Korean translation
Changwoo Ryu [Mon, 27 Aug 2018 14:11:52 +0000 (14:11 +0000)]
Update Korean translation

8 years agoUpdate Italian translation
Milo Casagrande [Mon, 27 Aug 2018 07:55:20 +0000 (07:55 +0000)]
Update Italian translation

8 years agoUpdate Indonesian translation
Kukuh Syafaat [Sun, 26 Aug 2018 13:49:05 +0000 (13:49 +0000)]
Update Indonesian translation

8 years agoUpdate Kazakh translation
Baurzhan Muftakhidinov [Sat, 25 Aug 2018 17:27:53 +0000 (17:27 +0000)]
Update Kazakh translation

8 years agoBump version to 3.29.91
Florian Müllner [Mon, 20 Aug 2018 14:09:21 +0000 (16:09 +0200)]
Bump version to 3.29.91

Update NEWS.

8 years agowindowManager: Ignore auto-repeat activation of toggle keybindigs
Andrea Azzarone [Fri, 22 Jun 2018 12:23:31 +0000 (14:23 +0200)]
windowManager: Ignore auto-repeat activation of toggle keybindigs

Use Meta.KeyBindingFlags.IGNORE_AUTOREPEAT for open-application-menu
and toggle-message-tray keybindings.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/373
8 years agoviewSelector: Ignore auto-repeat activation of toggle keybindigs
Andrea Azzarone [Fri, 22 Jun 2018 12:20:44 +0000 (12:20 +0000)]
viewSelector: Ignore auto-repeat activation of toggle keybindigs

Use Meta.KeyBindingFlags.IGNORE_AUTOREPEAT for toggle-application-view
and toggle-application-view keybindings.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/373
8 years agoUpdate British English translation
Bruce Cowan [Sun, 19 Aug 2018 16:42:07 +0000 (16:42 +0000)]
Update British English translation

8 years agoUpdate Romanian translation
Daniel Șerbănescu [Sun, 19 Aug 2018 16:17:31 +0000 (16:17 +0000)]
Update Romanian translation

8 years agoRevert "workspaceThumbnail: rebuild thumbnails if workareas size changed"
Florian Müllner [Fri, 20 Jul 2018 15:27:33 +0000 (17:27 +0200)]
Revert "workspaceThumbnail: rebuild thumbnails if workareas size changed"

It is unclear what the change was supposed to be fixing, but it
broke animations of workspace additions and removals, as those
events trigger the ::workareas-changed signal.

This reverts commit c29bd46e7a7e37a83849df8b3186c84eb46679ac.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/162

8 years agorunDialog: Use ClutterText::activate for enter handling
Carlos Garnacho [Wed, 15 Aug 2018 13:39:58 +0000 (15:39 +0200)]
runDialog: Use ClutterText::activate for enter handling

Instead of consuming the event in front of the input method. Enter
is sometimes overriden by those, so it seems better to let the IM
handle the key event, and react later to it if it got propagated
anyway. That is what ::activate does, so use this signal.

This used to work before ClutterInputMethod/InputFocus because the
IM received the events directly from stage captured events. This
is not the case anymore.

Closes: #440
8 years agost: Use ClutterClickAction on StEntry primary/secondary icons
Carlos Garnacho [Fri, 17 Aug 2018 18:12:31 +0000 (20:12 +0200)]
st: Use ClutterClickAction on StEntry primary/secondary icons

This makes them work on touchscreens as well.

Closes: #116
8 years agoUpdate Catalan translation
Jordi Mas [Thu, 16 Aug 2018 18:45:12 +0000 (20:45 +0200)]
Update Catalan translation

8 years agooverview: Restore previous workspace switcher policy
Florian Müllner [Fri, 20 Jul 2018 18:35:54 +0000 (20:35 +0200)]
overview: Restore previous workspace switcher policy

We used to keep the workspace switcher slid out when the user made use
of workspaces. This was changed in commit 2d84975 to give more space
to window previews, but it turned out to make the switcher quite a lot
more difficult to interact with (rather than only being a question of
discoverability). So go back to the previous behavior.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/161

8 years agooverviewControls: Sync hover after drag operations
Florian Müllner [Fri, 20 Jul 2018 18:51:40 +0000 (20:51 +0200)]
overviewControls: Sync hover after drag operations

During global grabs, actors miss enter and leave events required
for correct hover tracking. This can cause the workspace switcher
to get stuck while slid out, so ensure the actor's hover state is
synced after drag operations.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/161

8 years agobuild: Use dedicated resources for helper programs
Florian Müllner [Fri, 10 Aug 2018 11:56:07 +0000 (13:56 +0200)]
build: Use dedicated resources for helper programs

Using a single resource file for all JS sources saves a couple of
build system instructions, but has some serious downsides:

 - bundling the entire shell code with the tools blows
   up their size unnecessarily

 - the tools are rebuilt unnecessarily for any shell
   code change

Autotools was painful enough to let this slip, but with meson we
don't have any excuses - using the actual dependencies speeds up
the build a tiny bit and reduces the tools' sizes from over 2M
to about 50k.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/192

8 years agobuild: Clean up tools' dependencies
Florian Müllner [Fri, 10 Aug 2018 11:43:59 +0000 (13:43 +0200)]
build: Clean up tools' dependencies

Simply reusing the same dependencies as gnome-shell itself not only
means that we link tons of stuff unnecessarily, but also that we
have to do the whole mutter rpath dance for nothing. Just use the
dependencies those executables actually need for a nice cleanup.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/192

8 years agobuild: Don't modify typelib search path in tools
Florian Müllner [Fri, 10 Aug 2018 11:34:15 +0000 (13:34 +0200)]
build: Don't modify typelib search path in tools

We need this in the main gnome-shell executable in order to locate
the private Shell and St typelibs, but those aren't useful or even
usable in the extension-prefs/portal helper tools.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/192

8 years agolayout: Mark chrome container as NO_LAYOUT
Carlos Garnacho [Fri, 10 Aug 2018 19:37:48 +0000 (21:37 +0200)]
layout: Mark chrome container as NO_LAYOUT

Showing and hiding children does not affect the allocation of the uiGroup
nor its other children. We can avoid full relayout/redraw in those
situations.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/197

8 years agoFix typo in Czech translation
Andre Klapper [Mon, 13 Aug 2018 07:52:22 +0000 (09:52 +0200)]
Fix typo in Czech translation

https://bugzilla.gnome.org/show_bug.cgi?id=796829

8 years agoUpdate German translation
Bernd Homuth [Sun, 12 Aug 2018 12:21:06 +0000 (12:21 +0000)]
Update German translation

8 years agoUpdate Chinese (Taiwan) translation
Yi-Jyun Pan [Sun, 12 Aug 2018 10:18:17 +0000 (10:18 +0000)]
Update Chinese (Taiwan) translation

8 years agoUpdate French translation
Alexandre Franke [Thu, 9 Aug 2018 17:52:20 +0000 (17:52 +0000)]
Update French translation

8 years agoUpdate Friulian translation
Fabio Tomat [Wed, 8 Aug 2018 04:58:52 +0000 (04:58 +0000)]
Update Friulian translation

8 years agobuild: Fix build with meson >= 47.0
Pascal Nowack [Mon, 6 Aug 2018 12:21:02 +0000 (14:21 +0200)]
build: Fix build with meson >= 47.0

With meson >= 47.0, building gnome-shell will fail
when --rebuild-types is used as an option for gtk-doc,
so stop using that option and bump the meson requirement.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/191

8 years agonetworkAgent: Fix another ByteArray => Uint8Array instance
Florian Müllner [Thu, 2 Aug 2018 21:54:08 +0000 (23:54 +0200)]
networkAgent: Fix another ByteArray => Uint8Array instance

This was missed in commit 7ca418a79a. As we are dealing with
non-\0-terminated data here, go through GBytes this time.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/189

8 years agooverview: Use whole stage size for cover pane
verdre [Tue, 24 Jul 2018 12:45:03 +0000 (14:45 +0200)]
overview: Use whole stage size for cover pane

We show a cover pane on top of the overview during transitions to
prevent issues caused by clicks and mouseover events when the overview
is not ready. Right now, this pane is only being shown on the primary
monitor, which obviosly allows interactions to happen before the
animations are finished on the secondary monitors.

To fix this, use the size of the whole stage for the cover pane.

8 years agoUpdate Turkish translation
Emin Tufan Çetin [Mon, 6 Aug 2018 07:16:17 +0000 (07:16 +0000)]
Update Turkish translation

8 years agoUpdated Lithuanian translation
Aurimas Černius [Sun, 5 Aug 2018 20:22:14 +0000 (23:22 +0300)]
Updated Lithuanian translation

8 years agoUpdate Polish translation
Piotr Drąg [Sat, 4 Aug 2018 17:14:44 +0000 (19:14 +0200)]
Update Polish translation

8 years agokeyboard: Refactor code resetting IM on window drags
Carlos Garnacho [Fri, 3 Aug 2018 14:01:48 +0000 (16:01 +0200)]
keyboard: Refactor code resetting IM on window drags

When a window is dragged, the OSK should get hidden. Just
do this in a nicer way.

8 years agokeyboard: defer position-changed till we have a rect
Carlos Garnacho [Fri, 13 Jul 2018 22:14:07 +0000 (00:14 +0200)]
keyboard: defer position-changed till we have a rect

Emitting it that soon results in JS warnings, as we don't have
everything in place yet. The position-changed signal will be
emitted from other locations as soon as we have it.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/464

Closes: #464
8 years agoUpdated Slovenian translation
Matej Urbančič [Fri, 3 Aug 2018 09:17:49 +0000 (11:17 +0200)]
Updated Slovenian translation

8 years agotools: fix XDG desktop syntax in gnome-shell-overrides-migration
Olivier Blin [Thu, 2 Aug 2018 22:35:24 +0000 (00:35 +0200)]
tools: fix XDG desktop syntax in gnome-shell-overrides-migration

Reported by desktop-file-validate:
error: value "True" for boolean key "NoDisplay" in group "Desktop
Entry" contains invalid characters, boolean values must be "false" or
"true"

8 years agoworkspace: Simplify detecting added dialogs after closing a window
verdre [Tue, 19 Jun 2018 10:45:18 +0000 (12:45 +0200)]
workspace: Simplify detecting added dialogs after closing a window

When trying to close a window in the overview by clicking the close
button and the window doesn't get closed but a dialog is added to the
window afterwards, we close the overview and show the dialog.

Instead of adding a separate listener for the window-added signal to the
WindowOverlay, let the WindowClones remember that the close button was
pressed and activate themselves if a dialog is added after that.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/180

8 years agoworkspace: Fix infinite loop when finding parent window of dialogs
verdre [Mon, 23 Jul 2018 12:22:34 +0000 (14:22 +0200)]
workspace: Fix infinite loop when finding parent window of dialogs

When a dialog is added to a window while the overview is shown, we get
its parent using get_transient_for() so we can add it to the right
window clone.

If we have multiple layers of dialogs we have to do this recursively
until we find the root ancestor. This case currently results in an
infinite loop: Since parent is always set to the same window, the
while-condition will always be true.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/180

8 years agodata: Fix comment in schema
Florian Müllner [Wed, 1 Aug 2018 18:03:03 +0000 (20:03 +0200)]
data: Fix comment in schema

8 years agoshowOSD: Fix handling of defined 'falsy' parameters
Florian Müllner [Wed, 1 Aug 2018 11:27:07 +0000 (13:27 +0200)]
showOSD: Fix handling of defined 'falsy' parameters

For the OSD, all parameters except for the icon are optional - if the
caller doesn't include the 'label' option, the OSD won't show a label
etc.

While this makes sense for an API, it means that we have to be careful
to correctly differentiate an option that was omitted and an option
that has a 'falsy' value like false or 0.

Unfortunately since commit ccaae5d3c we no longer do, with the result
that OSDs meant for the first monitor will show up on all, and a level
of 0 is presented as no level bar instead of an empty one, whoops.

https://bugzilla.gnome.org/show_bug.cgi?id=791669

8 years agoUpdate Brazilian Portuguese translation
Bruno Lopes da Silva [Wed, 1 Aug 2018 10:15:51 +0000 (10:15 +0000)]
Update Brazilian Portuguese translation

8 years agoBump version to 3.29.90
Florian Müllner [Wed, 1 Aug 2018 01:15:09 +0000 (03:15 +0200)]
Bump version to 3.29.90

Update NEWS.

8 years agoUpdate POTFILES.in
Piotr Drąg [Tue, 31 Jul 2018 21:55:20 +0000 (23:55 +0200)]
Update POTFILES.in

8 years agotools: Migrate changed overrides settings
Florian Müllner [Wed, 18 Jul 2018 17:27:29 +0000 (19:27 +0200)]
tools: Migrate changed overrides settings

While the new per-desktop overrides in GIO are easier to use for
both developers and users, it is still inconvenient for everyone
who changed the defaults using the old overrides hack to lose
their settings. Address this by running a small script on startup
that migrates existing settings.

https://bugzilla.gnome.org/show_bug.cgi?id=786496

8 years agoReplace custom override schema with per-desktop override
Florian Müllner [Wed, 16 Aug 2017 19:15:48 +0000 (21:15 +0200)]
Replace custom override schema with per-desktop override

GSettings now recognizes per-desktop overrides that can be used
to change schemas' default values for a particular desktop. This
is not entirely unlike our existing custom override mechanism in
mutter, except that it is not limited to keys in org.gnome.mutter,
and it doesn't require a separate schema - the latter means that
we (and gnome-teak-tool) no longer have to figure out the correct
schema for the current login session and just use the original one.

https://bugzilla.gnome.org/show_bug.cgi?id=786496

8 years agovolume: Show overamplified icon when in overdrive
Didier Roche [Fri, 9 Feb 2018 14:10:16 +0000 (15:10 +0100)]
volume: Show overamplified icon when in overdrive

Show an overamplified volume icon if volume is louder the max normalized one.
Use a similar logic as gnome-settings-daemon to delimit values, restricted
to output.
The purpose is to help users remember that visiting some websites or
using some apps can get LOUD.

https://bugzilla.gnome.org/show_bug.cgi?id=790280.

8 years agobarLevel: Add "overdrive" capability
Didier Roche [Tue, 31 Jul 2018 13:49:06 +0000 (15:49 +0200)]
barLevel: Add "overdrive" capability

Implement for barLevel an overdrive area. This is a zone represented via a
different styling to indicate that you are bypassing the normal zone of
a given level, without reaching yet the maximum limit.

https://bugzilla.gnome.org/show_bug.cgi?id=790280.

8 years agovolume: Allow volume above 100%
Didier Roche [Tue, 31 Jul 2018 06:02:04 +0000 (08:02 +0200)]
volume: Allow volume above 100%

Depending on hardware and recorded volume level, turning up the speakers
to the maximum volume may not be enough and the user will want to amplify
the volume above 100%. Currently this requires opening the sound Settings
panel which gets cumbersome when required repeatedly.

To support this case better, allow raising the sound volume above 100%
directly from the system menu if the feature is enabled via the
`allow-volume-above-100-percent` key in `org.gnome.desktop.sound`.

8 years agoosdWindow: Allow levels above 100%
Didier Roche [Tue, 31 Jul 2018 14:47:05 +0000 (16:47 +0200)]
osdWindow: Allow levels above 100%

Allow osd representing levels that can be more than 100% by accepting
an optional parameter setting that maximum level.
gnome-settings-daemon will use this to indicate volume levels above 100%,
which our own volume indicator will soon support as well.

8 years agobarLevel: Support maxValue higher than 1
Didier Roche [Fri, 9 Feb 2018 13:02:21 +0000 (14:02 +0100)]
barLevel: Support maxValue higher than 1

Ensure that both barLevel and slider can support a higher maxValue than 1
and computes various positions based on it.
It defaults to 1 if not set.

https://bugzilla.gnome.org/show_bug.cgi?id=790280.

8 years agoosdWindow: Reuse BarLevel drawing functionality
Didier Roche [Thu, 8 Feb 2018 18:22:29 +0000 (19:22 +0100)]
osdWindow: Reuse BarLevel drawing functionality

Reuse the BarLevel class to get similar drawing behavior as Slider.
Rename theme css impacted properties and ensure that the osdWindow
remains accessible.
Ensure we don't force setting a custom border color like on the OSD.

https://bugzilla.gnome.org/show_bug.cgi?id=790280.

8 years agolevelBar: Factor out bar drawing
Didier Roche [Thu, 8 Feb 2018 18:04:42 +0000 (19:04 +0100)]
levelBar: Factor out bar drawing

Split drawing logic from Slider to BarLevel subclass.
This changes part of the theme css from -slider- to -barlevel-.

https://bugzilla.gnome.org/show_bug.cgi?id=790280.

8 years agosystem: Don't execute Settings
Georges Basile Stavracas Neto [Tue, 31 Jul 2018 16:23:05 +0000 (13:23 -0300)]
system: Don't execute Settings

In a9ad91c831, a bug was introduced in the following code:

```c
            this._settingsAction.connect('clicked',
                                         this._onSettingsClicked().bind(this));
```

Notice that the callback is being executed! This commit
fixes that by removing the '()' from the callback.

8 years agoExplicitly convert raw data to strings
Florian Müllner [Mon, 30 Jul 2018 12:35:27 +0000 (14:35 +0200)]
Explicitly convert raw data to strings

As strings are guaranteed to use UTF-8 in the GNOME platform, generic
file APIs like g_file_load_contents() return raw data instead. Since
gjs' recent update to mozjs60, this data is now returns as Uint8Array
which cannot simply be treated as string - its toString() method boils
down to arr.join(',') - so use gjs' new ByteArray module to explicitly
convert the data.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/179

8 years agosystem: Pick up Settings name and icon from app
Florian Müllner [Tue, 24 Jul 2018 14:40:03 +0000 (16:40 +0200)]
system: Pick up Settings name and icon from app

The settings action button in the system menu simply launches
gnome-control-center, so we want its icon (and accessible name)
to always match the app. So instead of keeping the button in-sync
with Settings, just look up that information from the app itself.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/433

8 years agosystem: Enforce symbolic icons in action buttons
Florian Müllner [Tue, 24 Jul 2018 14:29:56 +0000 (16:29 +0200)]
system: Enforce symbolic icons in action buttons

We can simply request the symbolic variant from CSS so that we don't
have to append '-symbolic' to all the names. This will always make
it easier to pick up that information from external sources (like
.desktop files).

https://gitlab.gnome.org/GNOME/gnome-shell/issues/433

8 years agowindowManager: Fix switch animation between non-adjacent workspaces
Florian Müllner [Tue, 31 Jul 2018 04:37:20 +0000 (06:37 +0200)]
windowManager: Fix switch animation between non-adjacent workspaces

Commit e5c95b910d refactored the workspace animation to also handle
animations that involve all surrounding workspaces, but due to an
ill-advised review comment (guess whose) it broke the animation
for non-neighboring workspaces.

Update the code to handle correctly whether in a given direction:
 - we have the target workspace of a given index
 - we have a neighboring workspace
 - we don't need to animate anything

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/182

8 years agoutil: Fix code style
Georges Basile Stavracas Neto [Tue, 31 Jul 2018 00:17:44 +0000 (21:17 -0300)]
util: Fix code style

The C code introduced in 49d8ff38e did not follow
GNOME Shell's C code style. This commit adjusts it
to comply with the correct code style.

8 years agoAdd check_cloexec_fds debug command
Daniel Drake [Fri, 27 Jul 2018 16:30:22 +0000 (11:30 -0500)]
Add check_cloexec_fds debug command

Add a debug command (to be executed manually via Alt+F2) to check
that all of gnome-shell's file descriptors have the CLOEXEC flag set.
This is important so that internal file descriptors do not get passed
to apps when they are launched.

It prints a warning message for every fd that does not have the flag set.

fdwalk() is used from the standard library if available (it is not
available in glibc), otherwise we use the same implementation as glib
has internally.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/132

8 years agoshell-app: remove child_setup from app launching
Daniel Drake [Wed, 6 Jun 2018 13:07:17 +0000 (07:07 -0600)]
shell-app: remove child_setup from app launching

When the amount of free memory on the system is somewhat low, gnome-shell
will sometimes fail to launch apps, reporting the error:
  fork(): Cannot allocate memory

fork() is failing here because while cloning the process virtual address
space, Linux worries that the thread being forked may end up COWing the
entire address space of the parent process (gnome-shell, which is
memory-hungry), and there is not enough free memory to permit that to
happen. This check is somewhat irrelevant because we are only forking
to immediately exec(), which will discard the whole virtual address
space anyway.

This issue can be avoided by using a new optimized gspawn codepath in
the latest glib development version, which uses posix_spawn() internally.

For the optimized codepath to be used, we must not pass a child_setup
function, so the the file descriptor management is reimplemented here
using new glib API to pass fds to the child process. The old API will
continue to be used on older glib versions.

We must also change the spawn flags for this code path to be hit.
I checked that gnome-shell's open file descriptors are all CLOEXEC
so using G_SPAWN_LEAVE_DESCRIPTORS_OPEN should be safe.

This will result in more resilient app launching when memory is low,
since the optimized spawn path avoids cloning the virtual address
space of the parent process (gnome-shell) and avoids the irrelevant
memory overcommit check.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/132

8 years agowindowManager: Make workspace switching gestures follow motion
Carlos Garnacho [Fri, 13 Jul 2018 21:38:03 +0000 (23:38 +0200)]
windowManager: Make workspace switching gestures follow motion

When 4fg swipe motion happens, set up early the workspace switching
animation with all surrounding workspaces. This allows us to move
all content back and forth in any direction. This works on both
touchcreens and touchpads.

When the gesture is activated, the same data is reused to follow
up with the tween animation.

The threshold has been also doubled, it was fairly small to start
with, and feels better now that workspaces stick to fingers.

https://bugzilla.gnome.org/show_bug.cgi?id=788994

8 years agowindowManager: Refactor workspace switching animations
Carlos Garnacho [Fri, 13 Jul 2018 13:04:02 +0000 (15:04 +0200)]
windowManager: Refactor workspace switching animations

Besides the separation into distinct functions, the stored data has
been made able to generically store windows from all surrounding
workspaces. All while keeping a special mode to animate between two
workspaces (The usual till now), this is the only mode exercised so
far.

In order to ease animations, all window groups are now children of
a common container, which is then animated.

8 years agowindowManager: Declare variables
Carlos Garnacho [Fri, 13 Jul 2018 21:32:33 +0000 (23:32 +0200)]
windowManager: Declare variables

Fixes warnings from GJS.

8 years agoapp: Consider "new-window" action for opening new windows
Florian Müllner [Thu, 22 Sep 2016 16:29:29 +0000 (18:29 +0200)]
app: Consider "new-window" action for opening new windows

While can_open_new_window() uses some elaborate heuristics to predict
whether an application can open multiple windows, open_new_window()
will always simply relaunch the application. This is often the best
we can do, but when an application provides a "new-window" action in
its .desktop file or on the bus, it is much more likely to work as
expected than blindly activating the app and hoping for a particular
behavior.

https://bugzilla.gnome.org/show_bug.cgi?id=756844

8 years agoscreenshot: Add PickColor() method to Screenshot interface
Florian Müllner [Tue, 17 Jul 2018 23:34:59 +0000 (01:34 +0200)]
screenshot: Add PickColor() method to Screenshot interface

Use the newly added API to implement a color picker method in the
screenshot interface, so that the desktop portal can expose it
to applications.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/286

8 years agoscreenshot: Allow bypassing lockdown setting
Florian Müllner [Thu, 19 Jul 2018 17:23:46 +0000 (19:23 +0200)]
screenshot: Allow bypassing lockdown setting

The setting is only relevant when writing to disk is required. We
will soon expose a screenshot method that doesn't, so make it
possible to ignore it.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/286

8 years agoscreenshot: Add pick_color() method
Florian Müllner [Thu, 19 Jul 2018 12:50:49 +0000 (14:50 +0200)]
screenshot: Add pick_color() method

Graphical applications like GIMP or GIMP allow picking colors from
any location on-screen. In order to keep supporting this feature
on wayland and in sandboxed apps, we will expose an appropriate
method in the Screenshot interface, so first add a corresponding
method to ShellScreenshot.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/286

8 years agoscreenshot: Adopt GIO's async pattern
Florian Müllner [Thu, 19 Jul 2018 13:54:33 +0000 (15:54 +0200)]
screenshot: Adopt GIO's async pattern

A custom callback type is more convenient, but only as long as no
other callback type is required. We are about to add functionality
that does not return the filename to a screenshot saved on disk, so
prepare for that by moving to GIO's generic async callback pattern.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/286

8 years agowindowManager: Add top edge drag gesture to unmake fullscreen window
Jan-Michael Brummer [Thu, 7 Jun 2018 15:52:18 +0000 (17:52 +0200)]
windowManager: Add top edge drag gesture to unmake fullscreen window

Fullscreen windows cannot be restored by touch device users unless the
application adds support for it.
As it is unlikely to change all application lets introduce a top edge
drag gesture which unmakes fullscreen windows.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/123

8 years agoremoteAccess: Make indicator orange
Jonas Ådahl [Fri, 27 Jul 2018 16:07:52 +0000 (18:07 +0200)]
remoteAccess: Make indicator orange

Make the indicator for active remote access use the warning color, to
indicate the severity of allowing remote access.

This only makes the indicator icon orange; the icon in the system menu
is still white.

8 years agoUpdated Spanish translation
Daniel Mustieles [Fri, 27 Jul 2018 11:38:45 +0000 (13:38 +0200)]
Updated Spanish translation

8 years agogdm, util: Always allow to retry login in unlock mode
Marco Trevisan (Treviño) [Tue, 29 May 2018 00:10:09 +0000 (03:10 +0300)]
gdm, util: Always allow to retry login in unlock mode

When in lockscreen mode there's no point of resetting the auth login as there's
no welcome screen, and that would just cause the UI to freeze, with no reason.
This could have been useful if we were stopping the user to login for a given
time after ALLOWED_FAILURES attempts, but this is not the case yet.

8 years agoauthPrompt: Do not enable sensitivity if retries are disallowed
Marco Trevisan (Treviño) [Tue, 29 May 2018 00:00:04 +0000 (03:00 +0300)]
authPrompt: Do not enable sensitivity if retries are disallowed

Set the sensitivity of the UI according to the canRetry parameter and thus
if no more logins are allowed don't take any input.

Fixes #311

8 years agoauthPrompt: Unset preemptiveAnswer on reset
Marco Trevisan (Treviño) [Mon, 28 May 2018 23:51:00 +0000 (02:51 +0300)]
authPrompt: Unset preemptiveAnswer on reset

When we get a reset signal the preemptiveAnswer should be also unset or it will
be used next time the user authPrompt will be activated, even without any further
user interaction.

Fixes #311

8 years agoworkspaceThumbnail: Sync clone position changes with actor
Marco Trevisan (Treviño) [Fri, 19 Jan 2018 14:01:16 +0000 (15:01 +0100)]
workspaceThumbnail: Sync clone position changes with actor

We need to update the clone position if window actor (not the meta window)
position changed.

https://bugzilla.gnome.org/show_bug.cgi?id=776588

8 years agoworkspace: Recompute bounding box on window 'position-changed'
Marco Trevisan (Treviño) [Fri, 19 Jan 2018 14:00:10 +0000 (15:00 +0100)]
workspace: Recompute bounding box on window 'position-changed'

We need to update the clone position if window size changed
also, rename meta window 'size-changed' callback accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=792681

8 years agoicons: update to current metaphors
Jakub Steiner [Tue, 24 Jul 2018 09:05:55 +0000 (11:05 +0200)]
icons: update to current metaphors

- sync with adwaita-icon-theme metaphors

8 years agoUpdate POTFILES.in
Piotr Drąg [Mon, 23 Jul 2018 21:14:12 +0000 (23:14 +0200)]
Update POTFILES.in

8 years agoAdd remote access indication and control
Jonas Ådahl [Fri, 20 Jul 2018 14:50:50 +0000 (16:50 +0200)]
Add remote access indication and control

Add an indicator for when there is something access the display server
remotely. This could be 1) remote desktop, 2) screen cast or 3) remote
control, but all effectively applications using
org.freedesktop.portal.ScreenCast or org.gnome.portal.RemoteDesktop as
well as gnome-remote-desktop using the corresponding org.gnome.Mutter
APIs directly.

As it is now, it'll simply show a single icon for when anything is
having an active session, and a single action "Turn off" that'll close
every active session.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/160

8 years agoUpdate French translation
Charles Monzat [Fri, 20 Jul 2018 09:00:03 +0000 (09:00 +0000)]
Update French translation

8 years agobuild: Don't use libdir for systemd unit path
Florian Müllner [Wed, 18 Jul 2018 21:03:30 +0000 (23:03 +0200)]
build: Don't use libdir for systemd unit path

Some systems define it to /usr/lib64 on 64-bit systems, which is not
where systemd looks for unit files. Just hardcode 'lib' in the install
prefix until we get to use the pkg-config file.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/424

8 years agoBump version to 3.29.4
Florian Müllner [Wed, 18 Jul 2018 15:46:36 +0000 (17:46 +0200)]
Bump version to 3.29.4

Update NEWS.

8 years agoinputMethod: Handle IBusInputContext::forward-key-press
Carlos Garnacho [Fri, 29 Jun 2018 15:35:39 +0000 (17:35 +0200)]
inputMethod: Handle IBusInputContext::forward-key-press

The input method may hint that certain keycodes should be pressed/released
besides the textual information in ::commit. An example is hitting space
in some IMs to commit text, where both ::commit happens, and an space is
visibly inserted. In order to handle this properly, we must honor
::forward-key-press.

In order to cater for the case that a keypress is forwarded while handling
that same keypress in a physical keyboard, check the current event being
handled and just forward it as-is if it matches. This is necessary to
prevent state from being doubly set, and the second event silenced away.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/275

Closes: #275
8 years agoAdd systemd units
Iain Lane [Wed, 17 Jan 2018 15:56:17 +0000 (15:56 +0000)]
Add systemd units

So that we can be started by systemd --user, instead of gnome-session.

There are three units:

  - gnome-shell.service: Start gnome-shell itself.
  - gnome-shell-x11.target, gnome-shell-wayland.target: Sync points for
    units that need to care if x11 or wayland is in use.
    gnome-settings-daemon will use these, for example.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/138

8 years agoStop using conditional catch statements
Florian Müllner [Sun, 15 Jul 2018 01:17:42 +0000 (03:17 +0200)]
Stop using conditional catch statements

It is a mozilla extension that is going away in SpiderMonkey 60.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/151

8 years agologinManager: Get the session ID from logind if XDG_SESSION_ID unset
Iain Lane [Mon, 8 Jan 2018 14:23:52 +0000 (14:23 +0000)]
loginManager: Get the session ID from logind if XDG_SESSION_ID unset

If we're started by systemd, we won't be in the user's display session.
However, this is still the session that will get locked & unlocked. Ask
logind what the 'display' or 'greeter' session is, and watch for the
Unlock signal for that session to know when to unlock.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/137

8 years agokeyboard: Handle no-window case in FocusTracker
Florian Müllner [Mon, 16 Jul 2018 23:36:38 +0000 (01:36 +0200)]
keyboard: Handle no-window case in FocusTracker

For windows, the cursor location needs to be adjusted by the frame
offsets. However we cannot assume that there is a window, as the
shell itself can have the key focus.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/414

8 years agoUpdate Russian translation
Stas Solovey [Mon, 16 Jul 2018 21:27:25 +0000 (21:27 +0000)]
Update Russian translation

8 years agopanel: Allow restoring maximized/tiled windows by touch
Florian Müllner [Thu, 24 May 2018 15:28:36 +0000 (17:28 +0200)]
panel: Allow restoring maximized/tiled windows by touch

Maximized and tiled windows can be restored with a drag gesture,
not only from their titlebars, but also from any non-reactive
parts of the top bar above the window. Currently this only works
for actual pointer devices, extend the behavior to handle touch
as well.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/112

8 years agoswitcherPopup: Cancel window cycling with Tab
Xavier Johnson [Tue, 29 May 2018 04:52:24 +0000 (00:52 -0400)]
switcherPopup: Cancel window cycling with Tab

If the Escape key is used for a window/app cycler/switcher shortcut
(such as "Switch windows directly"), then there is no way to cancel
the switching/cycling operation with the keyboard.

This change allows cancelling such an operation by pressing the Tab
key, but only if Tab is not already being used by the current
switcher/cycler shortcut.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/315
8 years agopopupMenu: Don't handle key presses directly if there are modifiers
Andrea Azzarone [Thu, 21 Jun 2018 16:40:43 +0000 (18:40 +0200)]
popupMenu: Don't handle key presses directly if there are modifiers

Key events involved in a keyboard shortcut are not completely consumed by
Mutter. That means that if the popupMenu is bound to a shortcut (e.g.
Alt<Space>) and the user keeps the keys pressed, the same key-event will be
delivered to the popupMenu. We can workaround this issue filtering out all the
events where a a modifier is down (except capslock).

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/372
8 years agost-texture-cache: Obey cache policy in st_texture_cache_load
Jasper St. Pierre [Fri, 4 Nov 2011 20:03:33 +0000 (16:03 -0400)]
st-texture-cache: Obey cache policy in st_texture_cache_load

https://bugzilla.gnome.org/show_bug.cgi?id=663461

8 years agoevents: Re-use event messages where possible
Florian Müllner [Sat, 9 Jun 2018 11:23:35 +0000 (13:23 +0200)]
events: Re-use event messages where possible

Destroying and recreating the entire events list on every change is not only
wasteful, it also breaks the clear functionality as messages scheduled for
removal are replaced with "new" messages after the first message has been
removed.

Address both issues by keeping track of all messages and re-use them
whenever possible.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/325

8 years agost-adjustment: Mark all properties as EXPLICIT_NOTIFY
Carlos Garnacho [Thu, 28 Jun 2018 18:22:40 +0000 (20:22 +0200)]
st-adjustment: Mark all properties as EXPLICIT_NOTIFY

All adjustment setter functions take good care of avoiding emission of
notify:: when it's not needed. The set_property() implementation already
calls into the setter functions, so mark the properties as EXPLICITY_NOTIFY
in order to optimize notify:: emission away through g_object_set (rather
common from JS code).

8 years agost-box-layout: Queue relayout on adjustment changes
Carlos Garnacho [Thu, 28 Jun 2018 14:41:07 +0000 (16:41 +0200)]
st-box-layout: Queue relayout on adjustment changes

The actor allocation doesn't change per-se, but apply_transform()
will practically transform it. In order to have the paint volume
update accordingly, queue a relayout.

8 years agost: Clip StEntry to allocation
Carlos Garnacho [Fri, 15 Jun 2018 12:23:21 +0000 (14:23 +0200)]
st: Clip StEntry to allocation

The default get_paint_volume() implementation will do the union
of children, and the child ClutterText paint volume may expand
beyond StEntry size when text overflows.

We actually want all content to be clipped to the StEntry, so
implement get_paint_volume() and tell it so.

8 years agost: Make StScrollables' paint volume reflect the unconstrained view
Carlos Garnacho [Wed, 16 May 2018 21:57:38 +0000 (23:57 +0200)]
st: Make StScrollables' paint volume reflect the unconstrained view

And constrain it in StScrollView instead (instead of falling back to an
infinite paint volume, as the actor as paint/pick impls, but no
corresponding get_paint_volume one).

Fixes artifacts with the AppView (and possibly other places) when paint
volumes are aggressively cached.

8 years agokeyboard: Remove stale references to global.screen
Carlos Garnacho [Wed, 11 Jul 2018 16:46:49 +0000 (18:46 +0200)]
keyboard: Remove stale references to global.screen

(Re)introduced by the previous patch.

8 years agokeyboard: Implement standalone FocusTracker
Carlos Garnacho [Fri, 25 May 2018 09:35:49 +0000 (11:35 +0200)]
keyboard: Implement standalone FocusTracker

And stop using FocusCaretTracker for caret position purposes. This
new object uses 1) the text-input protocol in wayland and 2) Info
from IBusPanelService for X11 (which is meant to work for XIM too).

This drops the usage of AtspiEventListener for OSK purposes, which
is best to avoid.

8 years agoBump version to 3.29.3
Florian Müllner [Mon, 9 Jul 2018 17:05:55 +0000 (19:05 +0200)]
Bump version to 3.29.3

Update NEWS.